/**
 * 版权所有:版权所有(C) 2020，卓信科技
 * 系统名称:FOL-财务在线
 * 文件名称:KeyValue.java
 * 模块名称:TODO(这里请补充模块名称)
 * 创建日期:2020年5月19日
 * 作        者:Baisong
 * 内容摘要:TODO(简单的名值对对象)
 */
package com.zx.platform.syscontext.util;

/**
 * 类  名  称:KeyValue
 * 
 * 内容摘要:TODO(简单的名值对对象)
 * 
 * 作        者:Baisong
 */
public class KeyValue<K, V> 
{

	protected K key;
	protected V value;

	public KeyValue() 
	{
	}

	public KeyValue(K key, V value) 
	{
		this.key = key;
		this.value = value;
	}

	/**
	 * Sets a key.
	 */
	public void setKey(K key) 
	{
		this.key = key;
	}

	/**
	 * Returns a key.
	 */
	public K getKey() 
	{
		return key;
	}

	/**
	 * Returns a value.
	 */
	public V getValue() 
	{
		return value;
	}

	/**
	 * Sets a value.
	 */
	public void setValue(V value) 
	{
		this.value = value;
	}

	public boolean equals(Object o) 
	{
		// 判断
		if (!(o instanceof KeyValue)) 
		{
			return false;
		}
		KeyValue that = (KeyValue) o;

		Object k1 = getKey();
		Object k2 = that.getKey();
		// 判断
		if (k1 == k2 || (k1 != null && k1.equals(k2))) 
		{
			Object v1 = getValue();
			Object v2 = that.getValue();
			// 判断
			if (v1 == v2 || (v1 != null && v1.equals(v2))) 
			{
				return true;
			}
		}
		return false;
	}

	/**
	 * hasCode
	 */
	public int hashCode() 
	{
		return (key == null ? 0 : key.hashCode()) ^
				(value == null ? 0 : value.hashCode());
	}

}
